EF Business regels toevoegen met attributen
Validatie
Data Annotations API
Microsoft heeft een zeer effectieve en gemakkelijk te gebruiken gegevensvalidering API ontwikkeld in de kern .NET Framework met de naam Data Annotations. Zoals de naam
impliceert, biedt de met de naam Data Annotations API een set .NET attributen die ontwikkelaars kunnen toegepassen op klasse-eigenschappen van data-objecten. Deze eigenschappen bieden een declaratieve manier om validatieregels rechtstreeks op een model toe te passen.
Verplichte velden
Aangezien een postcode en een plaatsnaam van cruciaal belang zijn voor een PostalCodes entiteit, passen we het RequiredAttribute
toe op deze twee velden om ze te markeren als
velden die nodig zijn om de eintiteit PostalCodes als geldig te beschouwen. Daarenboven specifiëren we ook de maximum lengte van deze velden.
namespace LerenWerkenMetEFCF.Models { public class PostalCodes { [Key] [Required] public int Id { get; set; } [Required] [MaxLength(4)] public string PostalCode { get; set; } [Required] [MaxLength(50)] public string Location { get; set; } } }
Aangepaste foutmeldingen
Ten slotte is het belangrijk op te merken dat alle gegevens annotaties een ErrorMessage
eigenschap hebben waarmee je een aangepaste foutmelding aan de gebruiker kan laten toen in plaats van de standaard foutmelding gegenereerd door de Data Annotations API. We geven voor elk van de gegevens annotaties die we hebben toegevoegd aan het model een aangepaste foutmelding mee:
using System.ComponentModel.DataAnnotations; namespace LerenWerkenMetEFCF.Models { public class PostalCodes { [Key] [Required] public int Id { get; set; } [Required] [MinLength(4, ErrorMessage = "Postcode bestaat uit minimum 4 cijfers.")] [MaxLength(4, ErrorMessage = "Postcode bestaat uit maximum 4 cijfers.")] public string PostalCode { get; set; } [Required] [MaxLength(50, ErrorMessage = "Postcode bestaat uit maximum 50 cijfers.")] public string Location { get; set; } } }
We gebruiken de Data Annotations API dus ook bij het definiëren van entiteiten zoals we gezien hebben in EF object relational mapping met attributen.
Meer info op Entity Framework Code First Data Annotations.